package io;

import java.io.File;
import java.util.Scanner;

/**
 * Created with IntelliJ IDEA.
 * Description: 扫描指定目录，并找到名称中包含指定字符的所有普通文件(不包含目录)，并且后续询问用户是否要删除该文件
 * User: Li_yizYa
 * Date: 2025/5/8
 * Time: 17:44
 */
public class Practice1 {

    private static void scan(File currentFile, String key) {
        if (!currentFile.isDirectory()) {
            return;
        }
        File[] files = currentFile.listFiles();
        if (files == null || files.length == 0) {
            return;
        }
        for (File file : files) {
            if (file.isFile()) {
                // 针对普通文件进行处理
                // 判断文件名是否符合要求并提示用户删除
                doDelete(file, key);
            } else {
                // 针对目录进行处理
                // 继续递归
                scan(file, key);
            }
        }
    }

    private static void doDelete(File file, String key) {
        if (!file.getName().contains(key)) {
            // 文件名中不包含指定的关键字
            return;
        }
        // 提示用户，是否要删除
        Scanner scanner = new Scanner(System.in);
        System.out.println(file.getAbsoluteFile() + "是否确认要删除 [Y/y] 删除  [N/n] 不删除");
        String choice = scanner.next();
        if (choice.equals("Y") || choice.equals("y")) {
            file.delete();
        }
    }

    public static void main(String[] args) {
        System.out.print("请输入要搜索的路径: ");
        Scanner scanner = new Scanner(System.in);
        String rootPath = scanner.next();
        File rootFile = new File(rootPath);
        if (!rootFile.isDirectory()) {
            System.out.println("输入的路径不存在");
            return;
        }
        System.out.print("请输入删除的文件名字的关键字: ");
        String key = scanner.next();

        // 进行递归查找
        scan(rootFile, key);
    }
}
